#ifndef _IMEMPOOL_H
#define _IMEMPOOL_H


interface IMemPool: public IBase
{	
	std_method_(void*, Malloc)(size_t size) PURE;
	std_method_(void*, Calloc)(size_t num, size_t size) PURE;
	std_method_(void*, Realloc)(void *ptr, size_t size) PURE;
	std_method(Free)(void* ptr) PURE;
};

// {51A3F354-0910-430B-A476-64A5A36CD854}
_DEFINE_IID(IID_IMemPool,
	0x51a3f354, 0x910, 0x430b, 0xa4, 0x76, 0x64, 0xa5, 0xa3, 0x6c, 0xd8, 0x54);

// {D1C10177-9BA2-4586-AB8C-0867CAAA7EA1}
_DEFINE_GUID(CLSID_IMemPool,
    0xd1c10177, 0x9ba2, 0x4586, 0xab, 0x8c, 0x8, 0x67, 0xca, 0xaa, 0x7e, 0xa1);


#endif
